import type { GuideDetailResult, GuideListResult } from '@/api/model/guideModel';
import { GuideAddRequest, GuideRequest } from '@/api/model/guideModel'; // 添加GuideAddRequest导入
import { request } from '@/utils/request';

// API接口定义
const Api = {
  GuideList: 'manage/guide/list', // 获取指南列表
  GuideSimpleList: 'manage/guide/simpleList', // 获取指南简要列表（审核时展示）
  GuideDetail: 'manage/guide', // 获取指南详情
  GuideAdd: 'manage/guide', // 新增指南
  GuideUpdate: 'manage/guide', // 更新指南
  GuideDelete: 'manage/guide', // 删除指南
};

/**
 * 获取指南列表
 * @param params 查询参数
 * @returns 指南列表数据
 */
export function getGuideList(params?: GuideRequest) {
  return request.post<GuideListResult>({
    url: Api.GuideList,
    params,
  });
}

/**
 * 获取指南简要列表
 * @returns 指南简要列表数据
 */
export function getGuideSimpleList(params?: GuideRequest) {
  return request.post<GuideListResult>({
    url: Api.GuideSimpleList,
    params,
  });
}

/**
 * 获取指南详情
 * @param id 指南ID
 * @returns 指南详情数据
 */
export function getGuideDetail(id: number) {
  return request.get<GuideDetailResult>({
    url: `${Api.GuideDetail}/${id}`,
  });
}

/**
 * 新增指南
 * @param data 新增指南的数据
 */
export function addGuide(data: GuideAddRequest) {
  return request.post({
    url: Api.GuideAdd,
    data,
  });
}

/**
 * 更新指南
 * @param data 更新指南的数据（包含id字段）
 */
export function updateGuide(data: GuideAddRequest) {
  return request.put({
    url: Api.GuideAdd,
    data,
  });
}

/**
 * 批量删除指南
 * @param ids 指南ID列表
 */
export function deleteGuide(ids: number[]) {
  return request.delete({
    url: `${Api.GuideDetail}/${ids}`,
  });
}
